package top.jiangqiang.qyblog.core.service;

import top.jiangqiang.qyblog.common.base.query.PageResult;
import top.jiangqiang.qyblog.common.base.response.Result;
import top.jiangqiang.qyblog.core.base.service.BaseService;
import top.jiangqiang.qyblog.core.domain.dto.NavAddDto;
import top.jiangqiang.qyblog.core.domain.dto.NavQueryDto;
import top.jiangqiang.qyblog.core.domain.dto.NavUpdateDto;
import top.jiangqiang.qyblog.core.domain.entity.Nav;
import top.jiangqiang.qyblog.core.domain.vo.NavVo;

/**
 * <p>
 * 导航菜单 服务类
 * </p>
 *
 * @author JiangQiang
 * @since 2023-05-30
 */
public interface INavService extends BaseService<Nav> {
    Result<PageResult<NavVo>> findByCondition(NavQueryDto navQueryDto);

    /**
     * 返回指定导航以及子导航
     *
     * @param id
     * @return
     */
    Result<NavVo> getNav(Long id);

    Result<NavVo> saveNav(NavAddDto navAddDto);

    Result<NavVo> editNav(NavUpdateDto navUpdateDto);

    /**
     * 会同步删除子菜单
     *
     * @param id
     * @return
     */
    Result<Boolean> deleteNav(Long id);

}
